<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字符串方法</title>
    <script>
        function f1(){
            let s = " ad M in ";
            // 获取字符串长度
            console.log("字符串长度:"+s.length);
            // 去除指定字符串首尾的空格
            s = s.trim();
            console.log("去除首尾空格后字符串长度:"+s.length);
            // 将指定的字符串转换成大写
            console.log(s.toUpperCase());
            // 将指定的字符串转换成小写
            console.log(s.toLowerCase());
            // 获取指定索引位置的字符 ad M in
            console.log(s.charAt(6));
        }
        function f2(){
            let s = "adminjackalice";
            // 截取字符串
            // substring(index):
                // 从指定索引位置index开始截取
                // 一直截取到末尾
            console.log(s.substring(5));
            console.log(s.substring(9));

            // substring(begin,end)
                // 从指定索引位置begin开始截取
                // 一直截取到end为止
                // 左闭右开,不包含end位置
            console.log(s.substring(5,9));
        }
        function f3(){
            // parseInt(s):将指定的字符串转换成整数
            // 如果字符串是一个整数的数字,则直接转换
            let s = "123";
            let num = parseInt(s);
            console.log(num);

            // 如果字符串时一个浮点数
            // 由于该方法转换的是整数,则只会取整数部分
            let s2 = "123.45";
            let num2 = parseInt(s2);
            console.log(num2);

            // 如果字符串中不只是数字,还有其他字符
            // 此时转换时会从第一个字符开始转换
            // 如果第一个字符是数字,则将该数字转换出来
            // 以此类推,一直转换到非数字位置停止转换
            // 最终转换了几个数字,则表示该字符串转换后的数字即为当前已经转换的数字
            let s3 = "123abc";
            let num3 = parseInt(s3);
            console.log(num3);

            // 如果字符串以非数字开头
            // 则第一个字符就无法转换
            // 此时直接返回NaN,Not a Number
            let s4 = "abc123";
            let num4 = parseInt(s4);
            console.log(num4);
        }
        function f4(){
            // parseFloat(s):将指定的字符串转换成整数
            // 如果字符串是一个整数的数字,则直接转换
            let s = "123";
            let num = parseFloat(s);
            console.log(num);

            // 如果字符串时一个浮点数,直接转换
            let s2 = "123.45";
            // 如果字符串中小数点不止一个,只会识别第一个
            // let s = "123.45.56";
            let num2 = parseFloat(s2);
            console.log(num2);

            // 如果字符串中不只是数字,还有其他字符
            // 其用法与parserInt一致,只是识别第一个小数点
            let s3 = "123.45abc";
            // 如果小数点后面是非数字,则相当于取了整数
            // let s3 = "123.abc45";
            let num3 = parseFloat(s3);
            console.log(num3);

            // 如果字符串以非数字开头
            // 则第一个字符就无法转换
            // 此时直接返回NaN,Not a Number
            let s4 = "abc123";
            let num4 = parseFloat(s4);
            console.log(num4);
        }
        function f5(){
            // indexOf(s2):获取子字符串在当前字符串中第一次出现的位置
            // 此处如果s2是一个字符串,不止一个字符,则返回的是第一个字符的索引位置
            let s = "admin admin admin";
            console.log(s.indexOf("admin"));
            // lastIndexOf(s2):获取子字符串在当前字符串中最后一次出现的位置
            console.log(s.lastIndexOf("admin"));
            // replace(s1,s2):字符串替换,默认只会替换第一次出现的指定字符
            console.log(s.replace("admin","alice"));
        }
    </script>
</head>
<body>
<button onclick="f1()">字符串方法</button><br/>
<button onclick="f2()">截取字符串</button><br/>
<button onclick="f3()">字符串转整数</button><br/>
<button onclick="f4()">字符串转浮点数</button><br/>
<button onclick="f5()">字符串方法</button><br/>
</body>
</html>